With recent spread of the Internet, it becomes popular to use a data processing apparatus such as a printing apparatus, copying machine, or facsimile apparatus while connecting it to a network. For example, as for a printing apparatus, high-end apparatuses such as a high-speed apparatus and color printing apparatus tend to incorporate a network interface. However, a low-end monochrome printing apparatus does not incorporate any network interface in the main body, and the network interface is generally supplied as a separate network card module.
In this case, the printing apparatus main body and network card module take intelligent forms individually having CPUs. Normally, the network card module is equipped with a print server function which performs comprehensive control of various print services via a network. The network card module communicates with the printing apparatus via a connection interface to realize a desired service.
From the viewpoint of the printing apparatus, heavy-load network services can depend on the network card module. This allows relatively degrading the performance of the CPU of the printing apparatus main body, that of a peripheral IC, and the like, and thus reducing the cost of the printing apparatus main body.
A conventional network interface suffices to transmit print data represented by, e.g., LPR (Line Printer Daemon Protocol: a remote print protocol used to share a printer by TCP/IP). These days, these is a strong need for information management with respect to the printing apparatus, and various means are provided as optional techniques.
The simplest example is to add information management data (job control language=Job Language) to a port for transmitting print data. The job control language takes a form in which the port for transmitting print data is shared. No service port need be added, and the job control language can be relatively easily mounted. However, when a large amount of data is transmitted during reception of print data, the port is occupied, and exchange of information management data stops. In a one-way connection using an LPR protocol or the like in the network, no information can be acquired.
Another method uses SNMP/MIB. This is an MIB (Management Information Base) using a port dedicated to exchange data and a standard SNMP (Simple Network Management Protocol). This method requires development of a dedicated client program for receiving SNMP and providing a user interface. Further, this method employs a protocol which performs simple information exchange, and thus can provide only a simple database of figures, character strings, or the like. Information which forms a graphical user interface (GUI) using, e.g., a bitmap image representing a device configuration must be held in the client program. For this reason, the client program must be made to comply with each model.
In recent years, a method using an HTTP protocol is becoming a major stream. According to this method, the network card module provides the client with WEB contents such as HTML data and a bitmap image associated with device information by using an HTTP service. The client displays WEB contents provided by the network card module by using a general WEB browser, and implements a GUI. If the GUI enables operation, the same effects as those obtained by using a dedicated client program can be obtained without providing any individual client program. A dedicated client program must manage various pieces of information (message character string, bitmap image, and the like) unique to the device. To the contrary, the above method in which the device suffices to hold only its model information is most suitable for providing a product within a short period of time.
However, all the above-mentioned methods only provide static functions incorporated in the network card module in advance. These methods cannot add a function later, or add a dynamic service of changing a control method by an incorporated function.
To solve this problem, Japanese Patent Laid-Open No. 2000-298561 proposes a system which acquires an application program operable in a data processing apparatus from an external device on a network and executes the application program. There is also recently proposed a platform technique capable of incorporating in a device an application program module created using the Java (registered trademark available from Sun Microsystems, Inc.) language, and activating the application program module in a Java virtual machine mounted in the device. By using this technique, a new function can be added later to a function-embedded device such as a printing apparatus.
The Java virtual machine comprises application program interfaces (API) in order to provide various functions necessary to control a function-embedded device, in addition to a network communication function. An application program module created by the Java language invokes these APIs, controls the function-embedded device, and processes requests from a host computer connected via a network.
The APIs provided on the Java virtual machine include functions necessary for network communication, and share a basic module which processes network communication protocols. Network communication can also be implemented by mounting the Java environment in an intelligent network card module.
The intelligent network card module having a CPU separately from a printing apparatus main body generally requires a design sharable between printing apparatuses of a plurality of models (connectable to printing apparatuses of a plurality of types) for the purpose of reduction of the development cost by commonality and reduction of the production cost by mass production.
A network card module used in a given printing apparatus can also be mounted in another printing apparatus. In this case, an application program installed in the network card module in an environment in which the module has previously been mounted may be kept installed. The application program is more likely to be unlimitedly used unless its activation is limited by any means when the added application program activates. This is not preferable for the application program supplier.
When the model of a printing apparatus in which the network module has previously been mounted and that of a current printing apparatus are different, an application program module which does not function or is unnecessary in the current model may be added. In this case, the application program module which does not function in the current printing apparatus may be activated.
Even for the same model, an application program module which does not function or is unnecessary in the equipment of the current printing apparatus owing to the difference in optional equipment may be added. Also in this case, the application program module which does not function in the equipment of the current printing apparatus may be activated.
In order to connect a network card module to apparatuses of a plurality of models, the network card module must hold all pieces of information such as a message corresponding to each model, resource data such as a bitmap image of a printing apparatus necessary for a graphical user interface, and information unique to each model. The ROM capacity necessary to store these pieces of information increases, raising the cost.
Depending on the type of application program module running in the Java virtual machine, some application program modules function in only a specific model, or some application program modules are necessary in only a specific model (these programs will be called model-dependent application programs). Holding model-dependent application programs in the network card module poses problems in efficient use of the storage area in addition to an increase in ROM capacity.
Considering a network card module having the above-described Java application program function, when the network card module is moved from an environment in which the module has been mounted and used once in a given printing apparatus main body to another environment, the network card module may malfunction depending on the difference between the functions of connected printing apparatus main bodies or values set in the previous environment. Even if no malfunction occurs, the resource may be wasted.
It may be difficult to give the printer a resource later when the printing apparatus main body has already been commercially available.